<?php

namespace app\model;

use support\Model;

/**
 * 商家支付记录模型
 * 
 * 用于管理商家支付记录相关数据
 * 包含用户ID、订单ID、支付金额、支付状态等信息
 * 
 * @property int $id 主键ID
 * @property int $user_id 用户ID
 * @property string $phone 用户手机号
 * @property string $biz_id 商家ID
 * @property float $pay_price 金额（不含优惠）
 * @property float $pay_money 实付金额（含优惠）
 * @property int $pay_status 支付状态（最终）
 * @property int $paid_at 支付时间
 * @property float $money 支付差额
 * @property int $score 云豆数量
 * @property int $card_score 福利卡云豆
 * @property int $score_status 云豆支付状态1-已支付0-未支付
 * @property int $money_status 微信补差价支付状态1-已支付0-未支付
 * @property string $card_score_data 福利卡云豆明细
 * @property float $discount 折扣比例，如70表示70%折扣
 * @property int $created_at 创建时间
 * @property int $updated_at 更新时间
 * @property string $trade_no 交易号

 */
class BizPayRecordModel extends Model
{
    /**
     * 关联表名
     * @var string
     */
    protected $table = 'biz_pay_record';

    /**
     * 主键
     * @var string
     */
    protected $primaryKey = 'id';

    /**
     * 关闭自动时间戳
     * @var bool
     */
    public $timestamps = false;

    /**
     * 可批量赋值字段
     * @var array
     */
    protected $fillable = [];

    /**
     * 隐藏字段
     * @var array
     */
    protected $hidden = [
    ];

    protected $guarded = [];

    static public function add($data){
        $payRecord = new BizPayRecordModel();
        $payRecord->user_id = $data['user_id'];
        $payRecord->phone = $data['phone'];
        $payRecord->biz_id = $data['biz_id'];
        $payRecord->pay_price = $data['pay_price'];
        $payRecord->pay_money = $data['pay_money'];
        $payRecord->pay_status = 0; // 0=未支付，1=已支付
        $payRecord->paid_at = 0;
        $payRecord->money = $data['money']; // 需要微信支付的金额
        $payRecord->score = $data['score']; // 使用的云豆余额数量
        $payRecord->card_score = $data['card_score']; // 使用的卡片云豆总数
        $payRecord->score_status = 0; // 云豆支付状态：0=未支付，1=已支付
        $payRecord->money_status = 0; // 微信支付状态：0=未支付，1=已支付
        $payRecord->card_score_data = $data['card_score_data']; // 福利卡云豆明细
        $payRecord->discount = $data['discount'] ?? null; // 折扣比例
        $payRecord->created_at = time();
        $payRecord->updated_at = time();
        $payRecord->save();

        return $payRecord;
    }
} 